# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter

import pandas as pd
import urllib.request


# 如果我们想要使用哦我们的管道的话 我们就需要将我们的settings里面将哦我们的管道进行开启之后才能进行
# 文本数据的保存
class DangdangPipeline:
    def open_spider(self, spider):
        # 在这里定义需要的数据 方便我们进行存储
        self.data = []

    def process_item(self, item, spider):
        self.data.append(
            (item.get('school_name'), item.get('url')))
        return item

    def close_spider(self, spider):
        data = pd.DataFrame(self.data, columns=['学校名称', '图片链接'])
        data.to_excel('图片链接.xlsx')


# 多条管道进行同时进行下载我们的数据
# (1)定义管道类
# 在seetings 中开启我们的管道


# 下载我们的图片 要使想要有多只通道 同时进行获取数据的话 我们也可以进行下载 写完之后要是想要实现的话 我们也要进行的就是
class DangDangDownloadPipeline:
    def process_item(self, item, spider):
        url = 'http:' + item.get('src')
        filename = './books/' + item.get('name') + '.jpg'
        urllib.request.urlretrieve(url=url, filename=filename)
        return item
